package auser;

import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;

import util.Conversions;

import com.db4o.ObjectContainer;
import com.db4o.config.annotations.Indexed; 
 

public class Socio extends AuserClassAbstract {
	 
	private String cognome=null;
	 
	private String nome=null;
	private String via=null;
	 
	private String comune=null;
	private String localita=null;
	private String cap=null;
	private String provincia=null;
	private Date dataIscrizione=null;
	 
	private Integer annoIscrizione;
	private String cf=null;
	private String piva=null;
	 
	private Date dataNascita= null;
	  
	private int meseNascita= 0;
	 
	private int annoNascita= 0;
	
	 
	private String luogoNascita;
	private String codiceLuogoNascita;
	private String provinciaNascita;
	private String titoloStudio = null;
	private String professione = null;
	 
	private Circolo circolo = null;
	 
	private String sesso = null;
	 
	private Long numeroRegistro=null;
	private String telefono=null;
	private String cellulare=null;
	private String email=null;
	private String fax=null;
	 
	private Boolean assistenzaPersoneDifficolta = false;
	private Boolean trasportoAmmalati = false;
	private Boolean accompagnatore = false;
	private Boolean personaDiCompagnia = false;
	private Boolean consegnaPasti = false;
	private Boolean praticheAmministrative = false;
	private Boolean animazione = false;
	private Boolean intrattenimento = false;
	private Boolean puliziaAbitazione = false;
	private Boolean campiGioco = false;
	private Boolean barCircolo = false;
	private Boolean organizzaViaggi = false;
	private Boolean turismo = false;
	private Boolean conferenze = false; 
	private Boolean laboratori = false;
	private Boolean formazione = false;
	private Boolean attivitaMotorie = false;
	private Boolean custodiaEdifici = false;
	private Boolean vigilanza = false;
	private Boolean manutenzioni = false;
	private Boolean legna = false;
	private Boolean ufficio = false;
	private Boolean computer = false;

	private Boolean lunedi = false;
	private Boolean martedi = false;
	private Boolean mercoledi = false;
	private Boolean giovedi = false;
	private Boolean venerdi = false;
	private Boolean sabato = false;
	private Boolean domenica = false;

	private Boolean mattina = false;
	private Boolean pomeriggio = false;
	
	private Integer quanteOre=0; 
	private String altreAttivita="";
	
	private Integer annoUltimaTessera=0;
	private Integer numeroUltimaTessera=0;
	
	
	public Socio(){
		primaTessera=new Tessera();
		primaTessera.setSocio(this);
	}
	
	public Integer getAnnoUltimaTessera() {
		return annoUltimaTessera;
	}

	

	public Integer getNumeroUltimaTessera() {
		return numeroUltimaTessera;
	}
	
	public void resetUltimaTessera(){
		this.annoUltimaTessera=0;
		this.numeroUltimaTessera=0;
	}
	public void setUltimaTessera(Integer anno,Integer numero){
		if(anno==null) return;
		if(numero==null) return;
		
		if(this.annoUltimaTessera==null) this.annoUltimaTessera=anno;
		else{
			if(anno.intValue()>=this.annoUltimaTessera.intValue()) {
					this.annoUltimaTessera=anno;
					this.numeroUltimaTessera=numero;
			}
		}
		

	}
	

	public void resetBooleans(){
		assistenzaPersoneDifficolta = false;
		trasportoAmmalati = false;
		accompagnatore = false;
		personaDiCompagnia = false;
		consegnaPasti = false;
		praticheAmministrative = false;
		animazione = false;
		intrattenimento = false;
		puliziaAbitazione = false;
		campiGioco = false;
		barCircolo = false;
		organizzaViaggi = false;
		turismo = false;
		conferenze = false;
		laboratori = false;
		formazione = false;
		attivitaMotorie = false;
		custodiaEdifici = false;
		vigilanza = false;
		manutenzioni = false;
		legna = false;
		ufficio = false;
		computer = false;
		
		lunedi = false;
		martedi = false;
		mercoledi = false;
		giovedi = false;
		venerdi = false;
		sabato = false;
		domenica = false;
		mattina = false;
		pomeriggio = false;
	}
	
	public String getCap() {
		return cap;
	}
	public void setCap(String cap) {
		this.cap = cap;
	}
	public String getCellulare() {
		return cellulare;
	}
	public void setCellulare(String cellulare) {
		this.cellulare = cellulare;
	}
	public String getCf() {
		return cf;
	}
	public void setCf(String cf) {
		this.cf = cf;
	}
	public Circolo getCircolo() {
		return circolo;
	}
	public void setCircolo(Circolo circolo) {
		this.circolo = circolo;
	}
	public String getCognome() {
		return cognome;
	}
	public void setCognome(String cognome) {
		this.cognome = cognome;
	}
	public String getComune() {
		return comune;
	}
	public void setComune(String comune) {
		this.comune = comune;
	}
	public Date getDataIscrizione() {
		return dataIscrizione;
	}
	public void setDataIscrizione(Date dataIscrizione) {
		this.dataIscrizione = dataIscrizione;
		
		if(dataIscrizione==null) annoIscrizione=null;
		else{
			Calendar cal = Calendar.getInstance();
			cal.setTime(dataIscrizione);	
			annoIscrizione= cal.get(java.util.Calendar.YEAR);
		}
	}
	public Date getDataNascita() {
		
		return dataNascita;
	}
	
	
	private void setDatiNascita(){
		if(dataNascita==null) {
			meseNascita=0;
			annoNascita=0;
		} else{
			Calendar cal = Calendar.getInstance();
			cal.setTime(dataNascita);	
			annoNascita= cal.get(java.util.Calendar.YEAR);
			meseNascita= cal.get(java.util.Calendar.MONTH)+1;
		}
	}
	
	public int getMeseNascita() {
		if(meseNascita==0)setDatiNascita();
		return meseNascita;
	}

	public void setMeseNascita(int meseNascita) {
	}

	public int getAnnoNascita() {
		if(annoNascita==0)setDatiNascita();
		return annoNascita; 
	}

	public void setAnnoNascita(int annoNascita) {
		 
	}

	public void setAnnoUltimaTessera(Integer annoUltimaTessera) {
		this.annoUltimaTessera = annoUltimaTessera;
	}

	public void setNumeroUltimaTessera(Integer numeroUltimaTessera) {
		this.numeroUltimaTessera = numeroUltimaTessera;
	}

	public String getFax() {
		return fax;
	}
	public void setFax(String fax) {
		this.fax = fax;
	}
	public String getLocalita() {
		return localita;
	}
	public void setLocalita(String localita) {
		this.localita = localita;
	}
	public String getLuogoNascita() {
		return luogoNascita;
	}
	public void setLuogoNascita(String luogoNascita) {
		this.luogoNascita = luogoNascita;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getPiva() {
		return piva;
	}
	public void setPiva(String piva) {
		this.piva = piva;
	}
	public String getProvincia() {
		return provincia;
	}
	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}
	public String getProvinciaNascita() {
		return provinciaNascita;
	}
	public void setProvinciaNascita(String provinciaNascita) {
		this.provinciaNascita = provinciaNascita;
	}
	public String getSesso() {
		return sesso;
	}
	public void setSesso(String sesso) {
		this.sesso = sesso;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getTitoloStudio() {
		return titoloStudio;
	}
	public void setTitoloStudio(String titoloStudio) {
		this.titoloStudio = titoloStudio;
	}
	public String getVia() {
		return via;
	}
	public void setVia(String via) {
		this.via = via;
	}
	public Integer getAnnoIscrizione() {
		return annoIscrizione;
	}
	public Long getNumeroRegistro() {
		return numeroRegistro;
	}
	
	public void setAnnoIscrizione(Integer annoIscrizione) {
		//this.annoIscrizione = annoIscrizione;
	}
	public void setDataNascita(Date dataNascita) {
		this.dataNascita = dataNascita;
		setDatiNascita();
	}
	public void setNumeroRegistro(Long numeroRegistro) {
		this.numeroRegistro = numeroRegistro;
	}
	 
	public String getProfessione() {
		return professione;
	}
	public void setProfessione(String professione) {
		this.professione = professione;
	}
	public Boolean getAccompagnatore() {
		return accompagnatore;
	}
	public void setAccompagnatore(Boolean accompagnatore) {
		this.accompagnatore = accompagnatore;
	}
	public String getAltreAttivita() {
		return altreAttivita;
	}
	public void setAltreAttivita(String altreAttivita) {
		this.altreAttivita = altreAttivita;
	}
	public Boolean getAnimazione() {
		return animazione;
	}
	public void setAnimazione(Boolean animazione) {
		this.animazione = animazione;
	}
	public Boolean getAssistenzaPersoneDifficolta() {
		return assistenzaPersoneDifficolta;
	}
	public void setAssistenzaPersoneDifficolta(Boolean assistenzaPersoneDifficolta) {
		this.assistenzaPersoneDifficolta = assistenzaPersoneDifficolta;
	}
	public Boolean getAttivitaMotorie() {
		return attivitaMotorie;
	}
	public void setAttivitaMotorie(Boolean attivitaMotorie) {
		this.attivitaMotorie = attivitaMotorie;
	}
	public Boolean getBarCircolo() {
		return barCircolo;
	}
	public void setBarCircolo(Boolean barCircolo) {
		this.barCircolo = barCircolo;
	}
	public Boolean getCampiGioco() {
		return campiGioco;
	}
	public void setCampiGioco(Boolean campiGioco) {
		this.campiGioco = campiGioco;
	}
	public Boolean getComputer() {
		return computer;
	}
	public void setComputer(Boolean computer) {
		this.computer = computer;
	}
	public Boolean getConferenze() {
		return conferenze;
	}
	public void setConferenze(Boolean conferenze) {
		this.conferenze = conferenze;
	}
	public Boolean getConsegnaPasti() {
		return consegnaPasti;
	}
	public void setConsegnaPasti(Boolean consegnaPasti) {
		this.consegnaPasti = consegnaPasti;
	}
	public Boolean getCustodiaEdifici() {
		return custodiaEdifici;
	}
	public void setCustodiaEdifici(Boolean custodiaEdifici) {
		this.custodiaEdifici = custodiaEdifici;
	}
	public Boolean getFormazione() {
		return formazione;
	}
	public void setFormazione(Boolean formazione) {
		this.formazione = formazione;
	}
	public Boolean getIntrattenimento() {
		return intrattenimento;
	}
	public void setIntrattenimento(Boolean intrattenimento) {
		this.intrattenimento = intrattenimento;
	}
	public Boolean getLaboratori() {
		return laboratori;
	}
	public void setLaboratori(Boolean laboratori) {
		this.laboratori = laboratori;
	}
	public Boolean getLegna() {
		return legna;
	}
	public void setLegna(Boolean legna) {
		this.legna = legna;
	}
	public Boolean getManutenzioni() {
		return manutenzioni;
	}
	public void setManutenzioni(Boolean manutenzioni) {
		this.manutenzioni = manutenzioni;
	}
	public Boolean getOrganizzaViaggi() {
		return organizzaViaggi;
	}
	public void setOrganizzaViaggi(Boolean organizzaViaggi) {
		this.organizzaViaggi = organizzaViaggi;
	}
	public Boolean getPersonaDiCompagnia() {
		return personaDiCompagnia;
	}
	public void setPersonaDiCompagnia(Boolean personaDiCompagnia) {
		this.personaDiCompagnia = personaDiCompagnia;
	}
	public Boolean getPraticheAmministrative() {
		return praticheAmministrative;
	}
	public void setPraticheAmministrative(Boolean praticheAmministrative) {
		this.praticheAmministrative = praticheAmministrative;
	}
	public Boolean getPuliziaAbitazione() {
		return puliziaAbitazione;
	}
	public void setPuliziaAbitazione(Boolean puliziaAbitazione) {
		this.puliziaAbitazione = puliziaAbitazione;
	}
	public Boolean getTrasportoAmmalati() {
		return trasportoAmmalati;
	}
	public void setTrasportoAmmalati(Boolean trasportoAmmalati) {
		this.trasportoAmmalati = trasportoAmmalati;
	}
	public Boolean getTurismo() {
		return turismo;
	}
	public void setTurismo(Boolean turismo) {
		this.turismo = turismo;
	}
	public Boolean getUfficio() {
		return ufficio;
	}
	public void setUfficio(Boolean ufficio) {
		this.ufficio = ufficio;
	}
	public Boolean getVigilanza() {
		return vigilanza;
	}
	public void setVigilanza(Boolean vigilanza) {
		this.vigilanza = vigilanza;
	}

	public Boolean getDomenica() {
		return domenica;
	}

	public void setDomenica(Boolean domenica) {
		this.domenica = domenica;
	}

	public Boolean getGiovedi() {
		return giovedi;
	}

	public void setGiovedi(Boolean giovedi) {
		this.giovedi = giovedi;
	}

	public Boolean getLunedi() {
		return lunedi;
	}

	public void setLunedi(Boolean lunedi) {
		this.lunedi = lunedi;
	}

	public Boolean getMartedi() {
		return martedi;
	}

	public void setMartedi(Boolean martedi) {
		this.martedi = martedi;
	}

	public Boolean getMattina() {
		return mattina;
	}

	public void setMattina(Boolean mattina) {
		this.mattina = mattina;
	}

	public Boolean getMercoledi() {
		return mercoledi;
	}

	public void setMercoledi(Boolean mercoledi) {
		this.mercoledi = mercoledi;
	}

	public Boolean getPomeriggio() {
		return pomeriggio;
	}

	public void setPomeriggio(Boolean pomeriggio) {
		this.pomeriggio = pomeriggio;
	}

	public Integer getQuanteOre() {
		return quanteOre;
	}

	public void setQuanteOre(Integer quanteOre) {
		this.quanteOre = quanteOre;
	}

	public Boolean getSabato() {
		return sabato;
	}

	public void setSabato(Boolean sabato) {
		this.sabato = sabato;
	}

	public Boolean getVenerdi() {
		return venerdi;
	}

	public void setVenerdi(Boolean venerdi) {
		this.venerdi = venerdi;
	}



	public String getCodiceLuogoNascita() {
		return codiceLuogoNascita;
	}



	public void setCodiceLuogoNascita(String codiceLuogoNascita) {
		this.codiceLuogoNascita = codiceLuogoNascita;
	}
	
	private Tessera primaTessera;

	public Tessera getPrimaTessera() {
		
		return primaTessera;
	}



	public void setPrimaTessera(Tessera primaTessera) {
		this.primaTessera = primaTessera;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	 
	
	 
	
}
